<?php

namespace common\validate;

class TemplateTodo extends BaseValidate
{
    // 验证规则
    protected $rule = [];

    // Create
    public function sceneCreate()
    {
        return $this->append("data", "require|array")
            ->append("data.name", "require")
            ->append("data.type", "require")
            ->append("data.stage_id", "integer")
            ->append("data.file_list", "array");
    }

    // CreateStarterAndExecutorList 模板待办创建发起人执行人参数
    public function sceneCreateStarterAndExecutorList()
    {
        return $this
            ->append('type', 'require|in:step_category,role')
            ->append('id', 'require|array')
            ->append('user_list', 'array');
    }

    // CreateOption 模板待办事项创建发起人执行人参数
    public function sceneCreateOption()
    {
        return $this
            ->append('template_sort', 'require') // 事项排序
            ->append('executor_list', 'require|array') // 事项执行人
            ->append('plan_end_time', 'require') // 事项结束时间
            ->append('option_name', 'require') // 事项名称
            ->append('template_type', 'require|in:after,job'); // 事项类型 后续事项,准备事项
    }

    // CreateOptionStarterAndExecutorList 模板待办创建发起人执行人参数
    public function sceneCreateOptionStarterAndExecutorList()
    {
        return $this
            ->append('group', 'require|array')
            ->append('id', 'require|array')
            ->append('type', 'require|in:role,step_category');
    }

    // UserList 用户列表参数校验
    public function sceneUserList()
    {
        return $this
            ->append('user_id', 'require')
            ->append('department_id', 'require');
    }

    // GetFileList 获取关联交付列表
    public function sceneGetFileList()
    {
        return $this
            ->append('param.filter', 'array');
    }

    public function sceneGetOpenTemplateTodoStageList()
    {
        return $this->append('param.filter.project_id', 'require');
    }
}
